FIG. 13 shows a memory database system, in which a user application program directly updates a data area placed on a shared memory. In this database system, in the case where there is a defect in the user application program, there is a problem that, when the user application program updates data, the data area on the shared memory might be destroyed.
FIG. 14 shows a journal file system for the memory database system. In this system, when data destruction occurs, data is restored according to the following procedure. That is, (1) eliminating the destroyed data on the memory, (2) reloading the master data from the disk apparatus, and (3) roll forwarding an update data from the journal file, which holds and manages the metadata.
However, the procedures (2) and (3) require reading data from the disk apparatus. Usually, time necessary for reading and writing, when accessing the disk apparatus, is large compared with the case when accessing a memory, then, when the memory destruction occurs, services are suspended for a long time. Also, the cost required for recovery is large.
As a system, equipped with a function to prevent the data destruction caused by the user application program, there is a memory database system of a client/server method. A system of the client/server method, as shown in FIG. 15, includes a server daemon. Access from the user application program to the data is inevitably performed through the server daemon. Only the server daemon accesses the shared memory, and the user application program does not directly access the shared memory. As a result, the user application program does not destroy data on the shared memory.
As another method, a method used for CVS (Concurrent Versions System) is known. The CVS is a version management system, by which a plurality of people handle a file simultaneously. A configuration of the CVS is shown in FIG. 16. When a user updates a master data (a master file, in this case), first, (4) copying whole of the master file from an area, called a repository, into a local area, and next, (5) updating the copied master file.
After that, (6) the contents of the update are reflected to the master file in a lump. The user himself/herself cannot update directly the master file. As a result, the user does not destroy the master file.
FIG. 17 shows a data update method disclosed by patent document 1. From an application process, the shared memory of the database system is read-only. A memory for update is provided in block units (64 KB) or page units (4 to 8 KB) for each application process. When updating the data, first, (7) a relevant block of the shared memory is copied to the memory for update, (8) the data on the memory for update is updated, and then, (9) a manager process copies contents on the memory for update into the shared memory. (10) The application process does not directly access the master data. As a result, the user does not destroy the master file.    Patent document 1: Japanese Patent Application Laid-Open No. 1998-031604